/** @file gdi.h
 * @brief point draw 
 * @author    - Robert Zhang <armner@gmail.com>
 *            - 
 * @date 2013-05
 * @note
*/

#ifndef	_GDI_H_
#define	_GDI_H_

#include "font.h"

#ifdef __cplusplus
extern "C" {
#endif

const int RESX =216;
const int RESY =64;
/** @class Gdi gdi.h "gdi/gdi.h"
 * @brief
 */
class Gdi
{
public:
    Gdi();/**< @brief constructor */
    ~Gdi();/**< @brief destructor */
    
    char needRefresh;
    void dirty(short x0, short y0, short w, short h);/**< @brief dirty */
    void drawPoint(short x0, short y0, char value);/**< @brief draw a point */
    void reversePoint(short x0, short y0);/**< @brief reverse point */
    
    //void fillRect(short x0, short y0, short x1, short y1, char value);
    //void drawRect(short x0, short y0, short x1, short y1, char value);
    //void reverseRect(short x0, short y0, short x1, short y1);
    //void drawFont(short x0, short y0, char *pchar, char valueB,char valueW, FONT* font);
    //void drawLine(short x0, short y0, short x1, short y1, char value);
    //void drawCircle(short x0, short y0, short x1, short y1, float cosa, char value);
    //void drawString(short x0, short y0, short w, short h, char *pchar, char valueB,char valueW, FONT* font);
    //void drawBmp(short x0, short y0, char *pchar, short w, short h);
    //void drawBlank(short x0, short y0, short w, short h, char valueW);
    
    void refresh();/**< @brief refresh */
    void paintRect(short x0, short y0, short x1, short y1);/**< Draw a rectangular */

    void operator delete(void *t);/**< @brief operator 'delete' definitions  */ 
    void *operator new(unsigned int len);/**< @brief operator 'new' definitions  */ 

private:
    
};

extern Gdi *pGdi;

#ifdef __cplusplus
}
#endif

#endif

